关于ios指纹登陆功能ewp部分简单描述
设置指纹:
要使用指纹登陆必须得先开通指纹登陆功能,所以我们需要先设置指纹开通,调用客户端给的bol,ecode=native:canAuthenticate()方法检测系统是否有设置指纹密码,该方法会返回两个值,当bol=false,ecode=-7时会提示用户尚未设置Touch iD,需要先在手机上设置touch id。bol=true时表示可以开通指纹功能。
1 | bol,eCode =native:canAuthenticate(); |
开通指纹时产生的access_token会保存在客户端本地,调用客户端方法native:storeKeyAndSecret保存。1
2
3
4
5
6
7
8
9--请求接口开通指纹,接口会返回access_token,yxts(有效天数),rzlx(认证类型)
access_token=access_token["value"];
yxts=yxts["value"];
if database:getData(userid) == "" or database:getData(userid) == nil then
zhiwen_password=yxts.."|"..FRM_time.."|"..rzlx;
else zhiwen_password=database:getData(userid).."rytong"..yxts.."|"..FRM_time.."|"..rzlx;
end
native:storeKeyAndSecret("access_token_key", access_token, "access_token_serviceData");--ios把access_token用 storeKeyAndSecret保存
database:addData(userid, zhiwen_password);
还要把指纹有效期(90天)、设置开通指纹时的时间、登陆认证类型(主要是区分指纹还是手势)拼接成一个字段进行保存(zhiwen_password),
登陆验证指纹:
设置完用指纹登陆后,这个时候回到登陆界面就可以用指纹进行登录了
登陆验证时先验证有效期过了没有,如果设置指纹时间超过90天则报错说
因您长时间未使用指纹登录,请先通过验证密码登录,成功登录后下次登录时可继续使用指纹登录。
反之进行下一步验证,调用客户端方法native:authenticate(),验证时会有传两个值给后台,方案图如下:
部分代码:
1 | if val1 == false then |
具体方法就不贴出来了,不同的app可能走的方法也不同,只是把大概的流程判断给贴出来。
验证成功的那一步还需要做个判断,因为有可能之前保存在客户端的access_token因为某些原因丢失,所以要判断access_token是否为空,如果为空,那就只能提示用户使用密码登陆了。
1 | local access_token=native:getSecretByKey("access_token_key", "access_token_serviceData"); --取出保存在客户端的access_token |